/*
 * main.c
 *
 *  Created on: Aug 27, 2013
 *      Author: IEUser
 */


/******************************************************************************************
 *	Deklaracje dołączanych plików nagłówkowych i bibliotek								 *
 *****************************************************************************************/
#include <avr/io.h>
#include <util/delay.h>

#include "uart.h"
#include "mcp9801.h"
#include "term_vt100.h"

/******************************************************************************************
 *	Deklaracje zmiennych globalnych								                         *
 *****************************************************************************************/


/******************************************************************************************
 *	Funkcje pomocnicze programu głównego						                         *
 *****************************************************************************************/


/******************************************************************************************
 *	Funkcja główna															 			 *
 *****************************************************************************************/
int main(void){

	/************************ Deklaracja zmiennych lokalnych ************************/
	uint8_t i, temp_int, temp_fract;
	/************************** Inicjalizacja podzespołów ***************************/
	uart_init(_UBRR);
	twi_init();

	DDRB |= (1<<PB0);
	PORTB |= (1<<PB0);

	mcp9801_write_register(CONFIGURATION, RESOLUTION_11BIT);
	i = mcp9801_read(CONFIGURATION, NOACK);

	term_clear();


	/********************************* Pętla główna *********************************/
	while(1){
		term_cursor_hide(1);




/*		uart_write_text("\r\nCONFIG: ");
		uart_write_int(i, 0);*/

		mcp9801_read_temp(&temp_int, &temp_fract);

/*		uart_write_text("\r\nTEMPERATURE: ");
		uart_write_int(temp_int, 0);
		uart_write_text(".");
		uart_write_int(temp_fract, 0);*/


		term_go_to(0,1);
		term_draw_line('-', 30, YELLOW, BLACK);
		term_go_to(4,2);
		term_set_attributes(BOLD, YELLOW, BLACK);
		uart_write_text_P(PSTR("MCP9801"));
		term_go_to(0,3);
		term_draw_line('-', 30, YELLOW, BLACK);
		term_go_to(0,4);
		term_set_attributes(BOLD, YELLOW, BLACK);
		uart_write_text_P(PSTR("Konfiguracja     Temperatura"));
		term_go_to(5,5);
		term_set_attributes(NONE, YELLOW, BLACK);
		uart_write_int(i, 0);
		term_go_to(20,5);
		uart_write_int(temp_int, 0);
		uart_write_text(".");
		uart_write_int(temp_fract, 0);
		term_go_to(0,6);
		term_draw_line('-', 30, YELLOW, BLACK);

		PORTB ^= (1<<PB0);
		_delay_ms(500);
	}

	return 0;
}

/******************************************************************************************
 *	Deklaracje funkcji obsługi przerwań								  					 *
 *****************************************************************************************/

/******************************************************************************************
 *	Koniec pliku main.c
 *****************************************************************************************/
